<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<title>OpenCV: Tracking API implementation details</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon" />
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../tutorial-utils.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
   &#160;<span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a>  </div>
  <div class="headertitle">
<div class="title">Tracking API implementation details<div class="ingroups"><a class="el" href="../../d9/df8/group__tracking.html">Tracking API</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:d3/dbe/namespacecv_1_1detail_1_1tracking_1_1contrib__feature"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/dbe/namespacecv_1_1detail_1_1tracking_1_1contrib__feature.html">cv::detail::tracking::contrib_feature</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d1/d9b/namespacecv_1_1detail_1_1tracking_1_1kalman__filters"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d9b/namespacecv_1_1detail_1_1tracking_1_1kalman__filters.html">cv::detail::tracking::kalman_filters</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d2/dea/namespacecv_1_1detail_1_1tracking_1_1online__boosting"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/dea/namespacecv_1_1detail_1_1tracking_1_1online__boosting.html">cv::detail::tracking::online_boosting</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:dc/d5e/namespacecv_1_1detail_1_1tracking_1_1tbm"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d5e/namespacecv_1_1detail_1_1tracking_1_1tbm.html">cv::detail::tracking::tbm</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:d3/dd8/namespacecv_1_1detail_1_1tracking_1_1tld"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/dd8/namespacecv_1_1detail_1_1tracking_1_1tld.html">cv::detail::tracking::tld</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d1b/classcv_1_1detail_1_1tracking_1_1TrackerContribFeature.html">cv::detail::tracking::TrackerContribFeature</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class for <a class="el" href="../../d5/d1b/classcv_1_1detail_1_1tracking_1_1TrackerContribFeature.html" title="Abstract base class for TrackerContribFeature that represents the feature. ">TrackerContribFeature</a> that represents the feature.  <a href="../../d5/d1b/classcv_1_1detail_1_1tracking_1_1TrackerContribFeature.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d82/classcv_1_1detail_1_1tracking_1_1TrackerContribFeatureHAAR.html">cv::detail::tracking::TrackerContribFeatureHAAR</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../d5/d1b/classcv_1_1detail_1_1tracking_1_1TrackerContribFeature.html" title="Abstract base class for TrackerContribFeature that represents the feature. ">TrackerContribFeature</a> based on HAAR features, used by <a class="el" href="../../d0/d26/classcv_1_1TrackerMIL.html" title="The MIL algorithm trains a classifier in an online manner to separate the object from the background...">TrackerMIL</a> and many others algorithms.  <a href="../../d0/d82/classcv_1_1detail_1_1tracking_1_1TrackerContribFeatureHAAR.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d4e/classcv_1_1detail_1_1tracking_1_1TrackerContribFeatureSet.html">cv::detail::tracking::TrackerContribFeatureSet</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class that manages the extraction and selection of features.  <a href="../../dd/d4e/classcv_1_1detail_1_1tracking_1_1TrackerContribFeatureSet.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/dd7/classcv_1_1detail_1_1tracking_1_1TrackerContribSampler.html">cv::detail::tracking::TrackerContribSampler</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class that manages the sampler in order to select regions for the update the model of the tracker [AAM] Sampling e Labeling. See table I and section III B.  <a href="../../dc/dd7/classcv_1_1detail_1_1tracking_1_1TrackerContribSampler.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d27/classcv_1_1detail_1_1tracking_1_1TrackerContribSamplerAlgorithm.html">cv::detail::tracking::TrackerContribSamplerAlgorithm</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class for <a class="el" href="../../dc/d27/classcv_1_1detail_1_1tracking_1_1TrackerContribSamplerAlgorithm.html" title="Abstract base class for TrackerContribSamplerAlgorithm that represents the algorithm for the specific...">TrackerContribSamplerAlgorithm</a> that represents the algorithm for the specific sampler.  <a href="../../dc/d27/classcv_1_1detail_1_1tracking_1_1TrackerContribSamplerAlgorithm.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../db/d5e/classcv_1_1detail_1_1tracking_1_1TrackerContribSamplerCSC.html">cv::detail::tracking::TrackerContribSamplerCSC</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../dc/d24/classcv_1_1detail_1_1tracking_1_1TrackerSampler.html" title="Class that manages the sampler in order to select regions for the update the model of the tracker [AA...">TrackerSampler</a> based on CSC (current state centered), used by MIL algorithm <a class="el" href="../../d0/d26/classcv_1_1TrackerMIL.html" title="The MIL algorithm trains a classifier in an online manner to separate the object from the background...">TrackerMIL</a>.  <a href="../../db/d5e/classcv_1_1detail_1_1tracking_1_1TrackerContribSamplerCSC.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d84/classcv_1_1detail_1_1tracking_1_1TrackerFeature.html">cv::detail::tracking::TrackerFeature</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class for <a class="el" href="../../d9/d84/classcv_1_1detail_1_1tracking_1_1TrackerFeature.html" title="Abstract base class for TrackerFeature that represents the feature. ">TrackerFeature</a> that represents the feature.  <a href="../../d9/d84/classcv_1_1detail_1_1tracking_1_1TrackerFeature.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d24/classcv_1_1detail_1_1tracking_1_1TrackerFeatureFeature2d.html">cv::detail::tracking::TrackerFeatureFeature2d</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../d5/d1b/classcv_1_1detail_1_1tracking_1_1TrackerContribFeature.html" title="Abstract base class for TrackerContribFeature that represents the feature. ">TrackerContribFeature</a> based on <a class="el" href="../../d0/d13/classcv_1_1Feature2D.html" title="Abstract base class for 2D image feature detectors and descriptor extractors. ">Feature2D</a>.  <a href="../../d7/d24/classcv_1_1detail_1_1tracking_1_1TrackerFeatureFeature2d.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d64/classcv_1_1detail_1_1tracking_1_1TrackerFeatureHOG.html">cv::detail::tracking::TrackerFeatureHOG</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../d5/d1b/classcv_1_1detail_1_1tracking_1_1TrackerContribFeature.html" title="Abstract base class for TrackerContribFeature that represents the feature. ">TrackerContribFeature</a> based on HOG.  <a href="../../d0/d64/classcv_1_1detail_1_1tracking_1_1TrackerFeatureHOG.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d77/classcv_1_1detail_1_1tracking_1_1TrackerFeatureLBP.html">cv::detail::tracking::TrackerFeatureLBP</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../d5/d1b/classcv_1_1detail_1_1tracking_1_1TrackerContribFeature.html" title="Abstract base class for TrackerContribFeature that represents the feature. ">TrackerContribFeature</a> based on LBP.  <a href="../../d9/d77/classcv_1_1detail_1_1tracking_1_1TrackerFeatureLBP.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/da4/classcv_1_1detail_1_1tracking_1_1TrackerFeatureSet.html">cv::detail::tracking::TrackerFeatureSet</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class that manages the extraction and selection of features.  <a href="../../df/da4/classcv_1_1detail_1_1tracking_1_1TrackerFeatureSet.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/dba/classcv_1_1detail_1_1tracking_1_1TrackerModel.html">cv::detail::tracking::TrackerModel</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract class that represents the model of the target.  <a href="../../da/dba/classcv_1_1detail_1_1tracking_1_1TrackerModel.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d24/classcv_1_1detail_1_1tracking_1_1TrackerSampler.html">cv::detail::tracking::TrackerSampler</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class that manages the sampler in order to select regions for the update the model of the tracker [AAM] Sampling e Labeling. See table I and section III B.  <a href="../../dc/d24/classcv_1_1detail_1_1tracking_1_1TrackerSampler.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d0a/classcv_1_1detail_1_1tracking_1_1TrackerSamplerAlgorithm.html">cv::detail::tracking::TrackerSamplerAlgorithm</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class for <a class="el" href="../../de/d0a/classcv_1_1detail_1_1tracking_1_1TrackerSamplerAlgorithm.html" title="Abstract base class for TrackerSamplerAlgorithm that represents the algorithm for the specific sample...">TrackerSamplerAlgorithm</a> that represents the algorithm for the specific sampler.  <a href="../../de/d0a/classcv_1_1detail_1_1tracking_1_1TrackerSamplerAlgorithm.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d58/classcv_1_1detail_1_1tracking_1_1TrackerSamplerCS.html">cv::detail::tracking::TrackerSamplerCS</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../dc/dd7/classcv_1_1detail_1_1tracking_1_1TrackerContribSampler.html" title="Class that manages the sampler in order to select regions for the update the model of the tracker [AA...">TrackerContribSampler</a> based on CS (current state), used by algorithm TrackerBoosting.  <a href="../../d0/d58/classcv_1_1detail_1_1tracking_1_1TrackerSamplerCS.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d59/classcv_1_1detail_1_1tracking_1_1TrackerSamplerCSC.html">cv::detail::tracking::TrackerSamplerCSC</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../dc/d24/classcv_1_1detail_1_1tracking_1_1TrackerSampler.html" title="Class that manages the sampler in order to select regions for the update the model of the tracker [AA...">TrackerSampler</a> based on CSC (current state centered), used by MIL algorithm <a class="el" href="../../d0/d26/classcv_1_1TrackerMIL.html" title="The MIL algorithm trains a classifier in an online manner to separate the object from the background...">TrackerMIL</a>.  <a href="../../da/d59/classcv_1_1detail_1_1tracking_1_1TrackerSamplerCSC.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d35/classcv_1_1detail_1_1tracking_1_1TrackerSamplerPF.html">cv::detail::tracking::TrackerSamplerPF</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This sampler is based on particle filtering.  <a href="../../d5/d35/classcv_1_1detail_1_1tracking_1_1TrackerSamplerPF.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/dd0/classcv_1_1detail_1_1tracking_1_1TrackerStateEstimator.html">cv::detail::tracking::TrackerStateEstimator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class for <a class="el" href="../../d8/dd0/classcv_1_1detail_1_1tracking_1_1TrackerStateEstimator.html" title="Abstract base class for TrackerStateEstimator that estimates the most likely target state...">TrackerStateEstimator</a> that estimates the most likely target state.  <a href="../../d8/dd0/classcv_1_1detail_1_1tracking_1_1TrackerStateEstimator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d10/classcv_1_1detail_1_1tracking_1_1TrackerStateEstimatorAdaBoosting.html">cv::detail::tracking::TrackerStateEstimatorAdaBoosting</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../d5/d10/classcv_1_1detail_1_1tracking_1_1TrackerStateEstimatorAdaBoosting.html" title="TrackerStateEstimatorAdaBoosting based on ADA-Boosting. ">TrackerStateEstimatorAdaBoosting</a> based on ADA-Boosting.  <a href="../../d5/d10/classcv_1_1detail_1_1tracking_1_1TrackerStateEstimatorAdaBoosting.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d2/d6e/classcv_1_1detail_1_1tracking_1_1TrackerStateEstimatorSVM.html">cv::detail::tracking::TrackerStateEstimatorSVM</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../d8/dd0/classcv_1_1detail_1_1tracking_1_1TrackerStateEstimator.html" title="Abstract base class for TrackerStateEstimator that estimates the most likely target state...">TrackerStateEstimator</a> based on SVM.  <a href="../../d2/d6e/classcv_1_1detail_1_1tracking_1_1TrackerStateEstimatorSVM.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d1b/classcv_1_1detail_1_1tracking_1_1TrackerTargetState.html">cv::detail::tracking::TrackerTargetState</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract base class for <a class="el" href="../../da/d1b/classcv_1_1detail_1_1tracking_1_1TrackerTargetState.html" title="Abstract base class for TrackerTargetState that represents a possible state of the target...">TrackerTargetState</a> that represents a possible state of the target.  <a href="../../da/d1b/classcv_1_1detail_1_1tracking_1_1TrackerTargetState.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga67c9939022cafc96f51089517d7636e5"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; std::pair&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../da/d1b/classcv_1_1detail_1_1tracking_1_1TrackerTargetState.html">TrackerTargetState</a> &gt;, float &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d0b/group__tracking__detail.html#ga67c9939022cafc96f51089517d7636e5">cv::detail::tracking::ConfidenceMap</a></td></tr>
<tr class="memdesc:ga67c9939022cafc96f51089517d7636e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents the model of the target at frame \(k\) (all states and scores)  <a href="../../d5/d0b/group__tracking__detail.html#ga67c9939022cafc96f51089517d7636e5">More...</a><br /></td></tr>
<tr class="separator:ga67c9939022cafc96f51089517d7636e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5d9e680e8f85f20e15c917ab1ddc9fdd"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../da/d1b/classcv_1_1detail_1_1tracking_1_1TrackerTargetState.html">TrackerTargetState</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/d0b/group__tracking__detail.html#ga5d9e680e8f85f20e15c917ab1ddc9fdd">cv::detail::tracking::Trajectory</a></td></tr>
<tr class="memdesc:ga5d9e680e8f85f20e15c917ab1ddc9fdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents the estimate states for all frames.  <a href="../../d5/d0b/group__tracking__detail.html#ga5d9e680e8f85f20e15c917ab1ddc9fdd">More...</a><br /></td></tr>
<tr class="separator:ga5d9e680e8f85f20e15c917ab1ddc9fdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2>Long-term optical tracking API </h2>
<p>Long-term optical tracking is an important issue for many computer vision applications in real world scenario. The development in this area is very fragmented and this API is an unique interface useful for plug several algorithms and compare them. This work is partially based on <a class="el" href="../../d0/de3/citelist.html#CITEREF_AAM">[210]</a> and <a class="el" href="../../d0/de3/citelist.html#CITEREF_AMVOT">[145]</a> .</p>
<p>These algorithms start from a bounding box of the target and with their internal representation they avoid the drift during the tracking. These long-term trackers are able to evaluate online the quality of the location of the target in the new frame, without ground truth.</p>
<p>There are three main components: the TrackerContribSampler, the TrackerContribFeatureSet and the TrackerModel. The first component is the object that computes the patches over the frame based on the last target location. The TrackerContribFeatureSet is the class that manages the Features, is possible plug many kind of these (HAAR, HOG, LBP, <a class="el" href="../../d0/d13/classcv_1_1Feature2D.html" title="Abstract base class for 2D image feature detectors and descriptor extractors. ">Feature2D</a>, etc). The last component is the internal representation of the target, it is the appearance model. It stores all state candidates and compute the trajectory (the most likely target states). The class TrackerTargetState represents a possible state of the target. The TrackerContribSampler and the TrackerContribFeatureSet are the visual representation of the target, instead the TrackerModel is the statistical model.</p>
<p>A recent benchmark between these algorithms can be found in <a class="el" href="../../d0/de3/citelist.html#CITEREF_OOT">[277]</a></p>
<h2>Creating Your Own Tracker </h2>
<p>If you want to create a new tracker, here's what you have to do. First, decide on the name of the class for the tracker (to meet the existing style, we suggest something with prefix "tracker", e.g. trackerMIL, trackerBoosting) &ndash; we shall refer to this choice as to "classname" in subsequent.</p>
<ul>
<li>Declare your tracker in modules/tracking/include/opencv2/tracking/tracker.hpp. Your tracker should inherit from <a class="el" href="../../d0/d0a/classcv_1_1Tracker.html" title="Base abstract class for the long-term tracker. ">Tracker</a> (please, see the example below). You should declare the specialized Param structure, where you probably will want to put the data, needed to initialize your tracker. You should get something similar to : <div class="fragment"><div class="line"><span class="keyword">class </span><a class="code" href="../../db/de0/group__core__utils.html#ga67ea671a3582ce612ac3c281e067f480">CV_EXPORTS_W</a> TrackerMIL : <span class="keyword">public</span> Tracker</div><div class="line">{</div><div class="line"> <span class="keyword">public</span>:</div><div class="line">  <span class="keyword">struct </span>CV_EXPORTS <a class="code" href="../../d4/d41/namespacecv_1_1dynafu.html#afe352b7045bf5f1496c2d8dd2a09a764">Params</a></div><div class="line">  {</div><div class="line">    <a class="code" href="../../d4/d41/namespacecv_1_1dynafu.html#afe352b7045bf5f1496c2d8dd2a09a764">Params</a>();</div><div class="line">    <span class="comment">//parameters for sampler</span></div><div class="line">    <span class="keywordtype">float</span> samplerInitInRadius;  <span class="comment">// radius for gathering positive instances during init</span></div><div class="line">    <span class="keywordtype">int</span> samplerInitMaxNegNum;  <span class="comment">// # negative samples to use during init</span></div><div class="line">    <span class="keywordtype">float</span> samplerSearchWinSize;  <span class="comment">// size of search window</span></div><div class="line">    <span class="keywordtype">float</span> samplerTrackInRadius;  <span class="comment">// radius for gathering positive instances during tracking</span></div><div class="line">    <span class="keywordtype">int</span> samplerTrackMaxPosNum;  <span class="comment">// # positive samples to use during tracking</span></div><div class="line">    <span class="keywordtype">int</span> samplerTrackMaxNegNum;  <span class="comment">// # negative samples to use during tracking</span></div><div class="line">    <span class="keywordtype">int</span> featureSetNumFeatures;  <span class="comment">// #features</span></div><div class="line"></div><div class="line">    <span class="keywordtype">void</span> <a class="code" href="../../d2/d75/namespacecv.html#a9afba2f5b9bf298c62da8cf66184e41f">read</a>( <span class="keyword">const</span> FileNode&amp; fn );</div><div class="line">    <span class="keywordtype">void</span> <a class="code" href="../../d2/d75/namespacecv.html#a027b764f14e54f8838b5120e991bd29c">write</a>( FileStorage&amp; fs ) <span class="keyword">const</span>;</div><div class="line">  };</div></div><!-- fragment --> of course, you can also add any additional methods of your choice. It should be pointed out, however, that it is not expected to have a constructor declared, as creation should be done via the corresponding create() method.</li>
<li>Finally, you should implement the function with signature : <div class="fragment"><div class="line">Ptr&lt;classname&gt; classname::create(<span class="keyword">const</span> <a class="code" href="../../d4/d41/namespacecv_1_1dynafu.html#afe352b7045bf5f1496c2d8dd2a09a764">classname::Params</a> &amp;parameters){</div><div class="line">    ...</div><div class="line">}</div></div><!-- fragment --> That function can (and probably will) return a pointer to some derived class of "classname", which will probably have a real constructor.</li>
</ul>
<p>Every tracker has three component TrackerContribSampler, TrackerContribFeatureSet and TrackerModel. The first two are instantiated from <a class="el" href="../../d0/d0a/classcv_1_1Tracker.html" title="Base abstract class for the long-term tracker. ">Tracker</a> base class, instead the last component is abstract, so you must implement your TrackerModel.</p>
<h3>TrackerContribSampler</h3>
<p>TrackerContribSampler is already instantiated, but you should define the sampling algorithm and add the classes (or single class) to TrackerContribSampler. You can choose one of the ready implementation as TrackerContribSamplerCSC or you can implement your sampling method, in this case the class must inherit TrackerContribSamplerAlgorithm. Fill the samplingImpl method that writes the result in "sample" output argument.</p>
<p>Example of creating specialized TrackerContribSamplerAlgorithm TrackerContribSamplerCSC : : </p><div class="fragment"><div class="line"><span class="keyword">class </span><a class="code" href="../../db/de0/group__core__utils.html#ga67ea671a3582ce612ac3c281e067f480">CV_EXPORTS_W</a> TrackerContribSamplerCSC : <span class="keyword">public</span> TrackerContribSamplerAlgorithm</div><div class="line">{</div><div class="line"> <span class="keyword">public</span>:</div><div class="line">  TrackerContribSamplerCSC( <span class="keyword">const</span> <a class="code" href="../../d4/d41/namespacecv_1_1dynafu.html#afe352b7045bf5f1496c2d8dd2a09a764">TrackerContribSamplerCSC::Params</a> &amp;parameters = <a class="code" href="../../d4/d41/namespacecv_1_1dynafu.html#afe352b7045bf5f1496c2d8dd2a09a764">TrackerContribSamplerCSC::Params</a>() );</div><div class="line">  ~TrackerContribSamplerCSC();</div><div class="line">  ...</div><div class="line"></div><div class="line"> <span class="keyword">protected</span>:</div><div class="line">  <span class="keywordtype">bool</span> samplingImpl( <span class="keyword">const</span> Mat&amp; image, <a class="code" href="../../dc/d84/group__core__basic.html#ga11d95de507098e90bad732b9345402e8">Rect</a> boundingBox, std::vector&lt;Mat&gt;&amp; sample );</div><div class="line">  ...</div><div class="line"></div><div class="line">};</div></div><!-- fragment --><p>Example of adding TrackerContribSamplerAlgorithm to TrackerContribSampler : : </p><div class="fragment"><div class="line"><span class="comment">//sampler is the TrackerContribSampler</span></div><div class="line">Ptr&lt;TrackerContribSamplerAlgorithm&gt; CSCSampler = <span class="keyword">new</span> TrackerContribSamplerCSC( CSCparameters );</div><div class="line"><span class="keywordflow">if</span>( !sampler-&gt;addTrackerSamplerAlgorithm( CSCSampler ) )</div><div class="line"> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"></div><div class="line"><span class="comment">//or add CSC sampler with default parameters</span></div><div class="line"><span class="comment">//sampler-&gt;addTrackerSamplerAlgorithm( &quot;CSC&quot; );</span></div></div><!-- fragment --> <dl class="section see"><dt>See also</dt><dd>TrackerContribSamplerCSC, TrackerContribSamplerAlgorithm</dd></dl>
<h3>TrackerContribFeatureSet</h3>
<p>TrackerContribFeatureSet is already instantiated (as first) , but you should define what kinds of features you'll use in your tracker. You can use multiple feature types, so you can add a ready implementation as TrackerContribFeatureHAAR in your TrackerContribFeatureSet or develop your own implementation. In this case, in the computeImpl method put the code that extract the features and in the selection method optionally put the code for the refinement and selection of the features.</p>
<p>Example of creating specialized TrackerFeature TrackerContribFeatureHAAR : : </p><div class="fragment"><div class="line"><span class="keyword">class </span><a class="code" href="../../db/de0/group__core__utils.html#ga67ea671a3582ce612ac3c281e067f480">CV_EXPORTS_W</a> TrackerContribFeatureHAAR : <span class="keyword">public</span> TrackerFeature</div><div class="line">{</div><div class="line"> <span class="keyword">public</span>:</div><div class="line">  TrackerContribFeatureHAAR( <span class="keyword">const</span> <a class="code" href="../../d4/d41/namespacecv_1_1dynafu.html#afe352b7045bf5f1496c2d8dd2a09a764">TrackerContribFeatureHAAR::Params</a> &amp;parameters = <a class="code" href="../../d4/d41/namespacecv_1_1dynafu.html#afe352b7045bf5f1496c2d8dd2a09a764">TrackerContribFeatureHAAR::Params</a>() );</div><div class="line">  ~TrackerContribFeatureHAAR();</div><div class="line">  <span class="keywordtype">void</span> selection( Mat&amp; response, <span class="keywordtype">int</span> npoints );</div><div class="line">  ...</div><div class="line"></div><div class="line"> <span class="keyword">protected</span>:</div><div class="line">  <span class="keywordtype">bool</span> computeImpl( <span class="keyword">const</span> std::vector&lt;Mat&gt;&amp; images, Mat&amp; response );</div><div class="line">  ...</div><div class="line"></div><div class="line">};</div></div><!-- fragment --><p> Example of adding TrackerFeature to TrackerContribFeatureSet : : </p><div class="fragment"><div class="line"><span class="comment">//featureSet is the TrackerContribFeatureSet</span></div><div class="line">Ptr&lt;TrackerFeature&gt; trackerFeature = <span class="keyword">new</span> TrackerContribFeatureHAAR( HAARparameters );</div><div class="line">featureSet-&gt;addTrackerFeature( trackerFeature );</div></div><!-- fragment --> <dl class="section see"><dt>See also</dt><dd>TrackerContribFeatureHAAR, TrackerContribFeatureSet</dd></dl>
<h3>TrackerModel</h3>
<p>TrackerModel is abstract, so in your implementation you must develop your TrackerModel that inherit from TrackerModel. Fill the method for the estimation of the state "modelEstimationImpl", that estimates the most likely target location, see <a class="el" href="../../d0/de3/citelist.html#CITEREF_AAM">[210]</a> table I (ME) for further information. Fill "modelUpdateImpl" in order to update the model, see <a class="el" href="../../d0/de3/citelist.html#CITEREF_AAM">[210]</a> table I (MU). In this class you can use the :cConfidenceMap and :cTrajectory to storing the model. The first represents the model on the all possible candidate states and the second represents the list of all estimated states.</p>
<p>Example of creating specialized TrackerModel TrackerMILModel : : </p><div class="fragment"><div class="line"><span class="keyword">class </span>TrackerMILModel : <span class="keyword">public</span> TrackerModel</div><div class="line">{</div><div class="line"> <span class="keyword">public</span>:</div><div class="line">  TrackerMILModel( <span class="keyword">const</span> <a class="code" href="../../dc/d84/group__core__basic.html#ga11d95de507098e90bad732b9345402e8">Rect</a>&amp; boundingBox );</div><div class="line">  ~TrackerMILModel();</div><div class="line">  ...</div><div class="line"></div><div class="line"> <span class="keyword">protected</span>:</div><div class="line">  <span class="keywordtype">void</span> modelEstimationImpl( <span class="keyword">const</span> std::vector&lt;Mat&gt;&amp; responses );</div><div class="line">  <span class="keywordtype">void</span> modelUpdateImpl();</div><div class="line">  ...</div><div class="line"></div><div class="line">};</div></div><!-- fragment --><p> And add it in your <a class="el" href="../../d0/d0a/classcv_1_1Tracker.html" title="Base abstract class for the long-term tracker. ">Tracker</a> : : </p><div class="fragment"><div class="line"><span class="keywordtype">bool</span> TrackerMIL::initImpl( <span class="keyword">const</span> Mat&amp; image, <span class="keyword">const</span> <a class="code" href="../../dc/d84/group__core__basic.html#ga894fe0940d40d4d65f008a2ca4e616bd">Rect2d</a>&amp; boundingBox )</div><div class="line">{</div><div class="line">  ...</div><div class="line">  <span class="comment">//model is the general TrackerModel field of the general Tracker</span></div><div class="line">  model = <span class="keyword">new</span> TrackerMILModel( boundingBox );</div><div class="line">  ...</div><div class="line">}</div></div><!-- fragment --><p> In the last step you should define the TrackerStateEstimator based on your implementation or you can use one of ready class as TrackerStateEstimatorMILBoosting. It represent the statistical part of the model that estimates the most likely target state.</p>
<p>Example of creating specialized TrackerStateEstimator TrackerStateEstimatorMILBoosting : : </p><div class="fragment"><div class="line"><span class="keyword">class </span><a class="code" href="../../db/de0/group__core__utils.html#ga67ea671a3582ce612ac3c281e067f480">CV_EXPORTS_W</a> TrackerStateEstimatorMILBoosting : <span class="keyword">public</span> TrackerStateEstimator</div><div class="line">{</div><div class="line"> <span class="keyword">class </span>TrackerMILTargetState : <span class="keyword">public</span> TrackerTargetState</div><div class="line"> {</div><div class="line"> ...</div><div class="line"> };</div><div class="line"></div><div class="line"> <span class="keyword">public</span>:</div><div class="line">  TrackerStateEstimatorMILBoosting( <span class="keywordtype">int</span> nFeatures = 250 );</div><div class="line">  ~TrackerStateEstimatorMILBoosting();</div><div class="line">  ...</div><div class="line"></div><div class="line"> <span class="keyword">protected</span>:</div><div class="line">  Ptr&lt;TrackerTargetState&gt; estimateImpl( <span class="keyword">const</span> std::vector&lt;ConfidenceMap&gt;&amp; confidenceMaps );</div><div class="line">  <span class="keywordtype">void</span> updateImpl( std::vector&lt;ConfidenceMap&gt;&amp; confidenceMaps );</div><div class="line">  ...</div><div class="line"></div><div class="line">};</div></div><!-- fragment --><p> And add it in your TrackerModel : : </p><div class="fragment"><div class="line"><span class="comment">//model is the TrackerModel of your Tracker</span></div><div class="line">Ptr&lt;TrackerStateEstimatorMILBoosting&gt; stateEstimator = <span class="keyword">new</span> TrackerStateEstimatorMILBoosting( <a class="code" href="../../d1/dae/namespacecv_1_1gapi_1_1ie.html#a3ab1729bcaf2d08e30dd2bc645410908">params</a>.featureSetNumFeatures );</div><div class="line">model-&gt;setTrackerStateEstimator( stateEstimator );</div></div><!-- fragment --> <dl class="section see"><dt>See also</dt><dd>TrackerModel, TrackerStateEstimatorMILBoosting, TrackerTargetState</dd></dl>
<p>During this step, you should define your TrackerTargetState based on your implementation. TrackerTargetState base class has only the bounding box (upper-left position, width and height), you can enrich it adding scale factor, target rotation, etc.</p>
<p>Example of creating specialized TrackerTargetState TrackerMILTargetState : : </p><div class="fragment"><div class="line"><span class="keyword">class </span>TrackerMILTargetState : <span class="keyword">public</span> TrackerTargetState</div><div class="line">{</div><div class="line"> <span class="keyword">public</span>:</div><div class="line">  TrackerMILTargetState( <span class="keyword">const</span> <a class="code" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a>&amp; position, <span class="keywordtype">int</span> targetWidth, <span class="keywordtype">int</span> targetHeight, <span class="keywordtype">bool</span> foreground, <span class="keyword">const</span> Mat&amp; features );</div><div class="line">  ~TrackerMILTargetState();</div><div class="line">  ...</div><div class="line"></div><div class="line"> <span class="keyword">private</span>:</div><div class="line">  <span class="keywordtype">bool</span> isTarget;</div><div class="line">  Mat targetFeatures;</div><div class="line">  ...</div><div class="line"></div><div class="line">};</div></div><!-- fragment --> <h2 class="groupheader">Typedef Documentation</h2>
<a id="ga67c9939022cafc96f51089517d7636e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga67c9939022cafc96f51089517d7636e5">&#9670;&nbsp;</a></span>ConfidenceMap</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;std::pair&lt;<a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../da/d1b/classcv_1_1detail_1_1tracking_1_1TrackerTargetState.html">TrackerTargetState</a>&gt;, float&gt; &gt; <a class="el" href="../../d5/d0b/group__tracking__detail.html#ga67c9939022cafc96f51089517d7636e5">cv::detail::tracking::ConfidenceMap</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="../../d7/d65/tracking_8detail_8hpp.html">opencv2/video/detail/tracking.detail.hpp</a>&gt;</code></p>

<p>Represents the model of the target at frame \(k\) (all states and scores) </p>
<p>See <a class="el" href="../../d0/de3/citelist.html#CITEREF_AAM">[210]</a> The set of the pair \(\langle \hat{x}^{i}_{k}, C^{i}_{k} \rangle\) </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="../../da/d1b/classcv_1_1detail_1_1tracking_1_1TrackerTargetState.html" title="Abstract base class for TrackerTargetState that represents a possible state of the target...">TrackerTargetState</a> </dd></dl>

</div>
</div>
<a id="ga5d9e680e8f85f20e15c917ab1ddc9fdd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5d9e680e8f85f20e15c917ab1ddc9fdd">&#9670;&nbsp;</a></span>Trajectory</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../da/d1b/classcv_1_1detail_1_1tracking_1_1TrackerTargetState.html">TrackerTargetState</a>&gt; &gt; <a class="el" href="../../d5/d0b/group__tracking__detail.html#ga5d9e680e8f85f20e15c917ab1ddc9fdd">cv::detail::tracking::Trajectory</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code>#include &lt;<a class="el" href="../../d7/d65/tracking_8detail_8hpp.html">opencv2/video/detail/tracking.detail.hpp</a>&gt;</code></p>

<p>Represents the estimate states for all frames. </p>
<p><a class="el" href="../../d0/de3/citelist.html#CITEREF_AAM">[210]</a> \(x_{k}\) is the trajectory of the target up to time \(k\)</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../da/d1b/classcv_1_1detail_1_1tracking_1_1TrackerTargetState.html" title="Abstract base class for TrackerTargetState that represents a possible state of the target...">TrackerTargetState</a> </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:41 for OpenCV by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
